package event.timerevent;

import java.util.EventListener;

/**l'interfaccia rappresenta una classe astratta da implementare se si vuole ampliare la propria classe
 * per farla diventare un Timer.
 * <p>ESEMPIO FACILE PER CAPIRE
 *  definisci una classe NON STATIC (altrimenti non puoi usare "this"); dalle il nome che preferisci; crea dunque
 *  il suo costruttore in cui scriverai:
 *  <p> Timer t=new Timer();   cosi creerai un nuovo timer che scatta dopo 5 secondi</p>
 *  <p> t.addTimerListener(this);   cosi dirai che ti interessi degli eventi di questo timer</p>
 *  <p> t.StartTimer();   cosi dirai di far partire il timer</p>
 *  Ora implementa la tua classe con l'interfaccia TimerListener. l'unico metodo che devi implementare e' quello
 *  che specifica la procedura che si deve seguire quando il timer scatta. Scrivi per esempio un Hello World.
 *  A questo punto vai nel Main e istanzializza un'istanza della classe che hai appena creato. Se fai partire dopo
 *  5 secondi ti comparira' un Hello World
 * </p> 
 * @author koldar
 * @version 1.0
 * @see Timer
 * @see TimerEvent
 */
public interface TimerListener extends EventListener{
	
	/**specifica la procedura che avviene quando il Timer ha compiuto i giri che hai specificato quando
	 * hai eseguito lo Start del Timer
	 * @param arg0 indica il TimerEvent che e' stato ricevuto quando e' arrivato il messaggio
	 */
	public void TimerRung(TimerEvent arg0);
	/**specifica la procedura da eseguire se il timer che ha generato l'evento arg0 viene messo in pausa
	 * 
	 * @param arg0 indica il TimerEvent spedito dall'oggetto che ha subito il pause del Timer
	 */
	public void TimerPaused(TimerEvent arg0);
	/**specifica la procedura da eseguire qualora il timer che ha generato l'evento arg0 viene sospeso
	 * 
	 * @param arg0 specifica il messaggio spedito dall'oggetto che e' stato sospeso
	 */
	public void TimerSuspended(TimerEvent arg0);
}
